package homework.day02;

/**
 * 拆分字符串练习:
 * 定义字符串：https://search.jd.com/Search?keyword=usb&enc=utf-8&wq=usb&pvid=2fb014e3597c4712828926e2f35fa2b5
 * @author XingHaiYang
 * @date 2022/9/7 15:32
 */
public class Test02 {
	public static void main(String[] args) {
		m1();
		m2();
	}
	public static void m1(){
		/**
		 * 需求：将下面字符串按照"?"拆分为两部分并输出
		 * ?左侧在控制台输出内容为:
		 * 请求:http://localhost:8088/myweb/reg
		 * ?右侧在控制台输出内容为:
		 * 参数:name=zhangsan
		 */
		String path = "http://localhost:8088/myweb/reg?name=zhangsan";
		String[] strings = path.split("\\?");// 正则：特殊符号需转义
		System.out.println("请求："+strings[0]);//split()拆分完的返回值是一个数组，这是数组中第一个值
		System.out.println("参数："+strings[1]);//split()拆分完的返回值是一个数组，这是数组中第二个值
	}

	public static void m2(){
		/**
		 * 先拆分出请求部分与参数部分
		 * 观察参数部分的格式，找出规律后再将每一个参数的名字和值
		 * 得到并输出为:
		 * 参数名:name,参数值:zhangsan
		 * 参数名:pwd,参数值:123456
		 * ...
		 */
		String path = "http://localhost:8088/myweb/reg?name=zhangsan&pwd=123456&nick=san&age=16";
		String[] data = path.split("\\?");//按照？号将字符串拆分为请求路径和参数部分
		System.out.println("请求路径："+data[0]);//输出拆分后的请求路径
		String[] paras = data[1].split("\\&");//将参数部分通过&号拆分
		for(int i=0;i<paras.length;i++){//遍历拆分后的数组
			String[] strings = paras[i].split("\\=");//将得到的每一个元素进一步按照=号拆分
			String k = strings[0];//拆分完得到参数名
			String v = strings[1];//拆分完得到参数值
			System.out.println("参数名："+k+",参数值："+v);//输出参数名和参数值
		}
	}
}





